package com.jt.controller;

import com.jt.pojo.Item;
import com.jt.pojo.ItemDesc;
import com.jt.vo.SysResult;
import com.jt.vo.EasyUITable;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;

import com.jt.service.ItemService;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;

@RestController
@RequestMapping("/item")
public class ItemController {
	
	@Autowired
	private ItemService itemService;
//	//在bean对象实例化之后执行  一般都是为属性赋值用的
//	@PostConstruct
//	public void aa(){
//
//	}
//
//	//spring容器对象销毁之前 会执行关闭操作  一般用来释放链接/资源
//	@PreDestroy
//	public void bb(){
//
//	}
	/**
	 * 业务说明: 根据分页实现商品查询
	 * URL地址:	http://localhost:8091/item/query?page=1&rows=20
	 * 参数:	page/rows
	 * 返回值:  EasyUITable
	 */
	@RequestMapping("/query")
	public EasyUITable itemByPage(Integer page,Integer rows){
		return itemService.itemByPage(page,rows);
	}

	@RequestMapping("/query/item/desc/{id}")
	public SysResult findItemDescById(@PathVariable Long id){
		ItemDesc itemDesc=itemService.findItemDescById(id);
		return SysResult.success(itemDesc);
	}

	/**
	 * 业务说明: 商品新增
	 * 	URL地址: 	http://localhost:8091/item/save
	 * 	请求参数: 	form表单 item对象接收
	 * 	返回值:		SysResult对象
	 *
	 *
	 * 	重构新增：
	 * 		参数：itemDesc
	 *
	 *
	 *
	 */
	@RequestMapping("/save")
	public SysResult itemSave(Item item, ItemDesc itemDesc){
		itemService.saveItem(item,itemDesc);
		return SysResult.success();
	}

	/**
	 * 业务说明: 商品修改
	 * URL地址: http://localhost:8091/item/update
	 * 参数：form表单
	 * @param item
	 * @return SysResult对象
	 *
	 * 重构 加入itemDesc
	 *
	 *
	 */
	@RequestMapping("/update")
	public SysResult itemUpdated(Item item,ItemDesc itemDesc){
		itemService.updateItem(item,itemDesc);
		return SysResult.success();
	}

	/**
	 * 业务说明：基于Id删除商品
	 * URL地址: http://localhost:8091/item/delete
	 * @param ids
	 * @return
	 */
	@RequestMapping("/delete")
	public SysResult deleteItems(Long... ids){
		itemService.deleteItems(ids);
		return SysResult.success();
	}

	/**
	 * 业务需求：实现商品上架/下架
	 * URL地址: http://localhost:8091/item/reshelf 上架操作 status=1
	 * URL地址: http://localhost:8091/item/instock 下架操作 status=2
	 * 优化URL地址：http://localhost:8091/item/updateStatus/1    or   2
	 * restFul操作
	 * @param status
	 * @param ids
	 * @return
	 */
	@RequestMapping("updateStatus/{status}")
	public SysResult updateStatus(@PathVariable Integer status,Long... ids){
		itemService.updateStatus(status,ids);
		return SysResult.success();
	}


}
